package com.zb.huaweitest;

import java.io.IOException;
import java.util.*;
public class Main {
    public static void main(String[] args) throws IOException {
//        char[] input = new char[1000];
//        int i=0;
//        int readed = -1;
//        while((readed = System.in.read()) != '\n') {
//            input[i] = (char)readed;
//            i++;
//        }
//        i=999;
//        while(i >= 0) {
//            if(input[i] > 0) {
//                System.out.print(input[i]);
//            }
//            i--;
//        }
//        test4();
        String info = "D:\\zwtymj\\xccb\\ljj\\cqzlyaszjvlsjmkwoqijggmybr";
        String[] dirs = info.split("\\\\");

        System.out.println("\\");
    }
//    https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb?tpId=37&&tqId=21242&rp=1&ru=/ta/huawei&qru=/ta/huawei/question-ranking
    static void test5() {
        Scanner s = new Scanner(System.in);
        HashMap<String, Integer> errors = new HashMap<>();
        Vector<String> order = new Vector<>();
        while(s.hasNext()) {
            String input = s.nextLine();
            String[] infos = input.split(" ");
            String[] dirs = infos[0].split("\\\\");
            String name = dirs[dirs.length-1];
            if(name.length() > 16) {
                name = name.substring(name.length() - 8 , name.length());
            }
            String lineNumber = infos[1];
            String key = name + " " + lineNumber;
            if(errors.containsKey(key)) {
                errors.put(key, errors.get(key) + 1);
            } else {
                order.add(key);
                errors.put(key, 1);
            }
        }

        int i=0;
        if(order.size() > 8) {
            i = order.size() - 9;
        }
        for(; i<order.size(); i++) {
            String key = order.get(i);
            System.out.println(key + " " + errors.get(key));
        }
//         for(String key : errors.keySet()) {
//             int errorCount = errors.get(key);
//             String errorCountStr = errorCount == 1?"" : ("" + errorCount);
//             System.out.println(key + " " + errors.get(key));
//         }
    }

    static void test4() {
        Scanner s = new Scanner(System.in);
        String s1 = s.nextLine();
        String s2 = s.nextLine();
        if(s1.length() > s2.length()) {
            String tem = s1;
            s1 = s2;
            s2 = tem;
        }
        int leftIndex = 0;
        int rightIndex = s1.length();
        int maxCount = 0;
        for(leftIndex = 0; leftIndex < s1.length(); leftIndex++) {
            for(rightIndex = s1.length(); rightIndex > leftIndex; rightIndex--) {
                String subStr = s1.substring(leftIndex, rightIndex);
                System.out.println("L:" + leftIndex + " R:" + rightIndex);
                if(s2.contains(subStr)) {
                    maxCount = Math.max(maxCount, (rightIndex-leftIndex));
                }
            }
        }
        System.out.println(maxCount);
    }


    /**
     * HJ3 明明的随机数
     * 描述
     * 明明想在学校中请一些同学一起做一项问卷调查，为了实验的客观性，他先用计算机生成了N个1到1000之间的随机整数（N≤1000），对于其中重复的数字，只保留一个，把其余相同的数去掉，不同的数对应着不同的学生的学号。然后再把这些数从小到大排序，按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据(用于不同的调查)，希望大家能正确处理)。
     *
     *
     * 注：测试用例保证输入参数的正确性，答题者无需验证。测试用例不止一组。
     *
     * 当没有新的输入时，说明输入结束。
     *
     * 输入描述：
     * 注意：输入可能有多组数据(用于不同的调查)。每组数据都包括多行，第一行先输入随机整数的个数N，接下来的N行再输入相应个数的整数。具体格式请看下面的"示例"。
     *
     * 输出描述：
     * 返回多行，处理后的结果
     *
     * 示例1
     * 输入：
     * 3
     * 2
     * 2
     * 1
     * 11
     * 10
     * 20
     * 40
     * 32
     * 67
     * 40
     * 20
     * 89
     * 300
     * 400
     * 15
     * 复制
     * 输出：
     * 1
     * 2
     * 10
     * 15
     * 20
     * 32
     * 40
     * 67
     * 89
     * 300
     * 400
     * 复制
     * 说明：
     * 输入解释：
     * 第一个数字是3，也即这个小样例的N=3，说明用计算机生成了3个1到1000之间的随机整数，接下来每行一个随机数字，共3行，也即这3个随机数字为：
     * 2
     * 1
     * 1
     * 所以第一个小样例的输出为：
     * 1
     * 2
     * 第二个小样例的第一个数字为11，也即...(类似上面的解释)...
     * 所以第二个小样例的输出为：
     * 10
     * 15
     * 20
     * 32
     * 40
     * 67
     * 89
     * 300
     * 400
     * 所以示例1包含了两个小样例！！
     */
    static void test3() {
        int[] input = new int[1001];
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNext()) {
            int nextCount = scanner.nextInt();
            while(nextCount > 0) {
                nextCount--;
                int tem = scanner.nextInt();
                input[tem] = tem;
            }
            //输出 然后置空
            for(int i=0; i<1000; i++) {
                if(input[i] != 0) {
                    System.out.println(i);
                    input[i] = 0;
                }
            }
        }
    }



    /**
     * HJ2 计算某字母出现次数
     *
     * 描述
     * 写出一个程序，接受一个由字母、数字和空格组成的字符串，和一个字母，然后输出输入字符串中该字母的出现次数。不区分大小写，字符串长度小于500。
     *
     * 输入描述：
     * 第一行输入一个由字母和数字以及空格组成的字符串，第二行输入一个字母。
     *
     * 输出描述：
     * 输出输入字符串中含有该字符的个数。
     *
     * 示例1
     * 输入：
     * ABCabc
     * A
     * 复制
     * 输出：
     * 2
     */
    static void test2() {
        //注意 不区分大小写
        Scanner scanner = new Scanner(System.in);
        String input = scanner.nextLine().toLowerCase();
        char key = scanner.nextLine().toLowerCase().charAt(0);
        int count = 0;
        for(int i=0; i<input.length(); i++) {
            if(key == input.charAt(i))
                count++;
        }
        System.out.print(count);
    }


    static void test1() {
        Scanner scanner = new Scanner(System.in);
        String input = scanner.nextLine();
        char key = (char) scanner.nextInt();
        int count = 0;
        for(int i=0; i<input.length(); i++) {
            if(key == input.charAt(i))
                count++;
        }
        System.out.print(count);
    }
}